Conversation
Repeated k-mers need three dictionary operations and a new boxed count. Keep one mutable counter per key so updates use one lookup and increment a native integer field.
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
added 4 commits
September 20, 2026 12:57
Converting the denominator for every matrix element allocates a temporary integer. Keep the denominator and its increment as floats throughout each row. Both remain exact integers at the benchmark sizes.
The sieve revisits composites already marked by smaller primes and marks each prime itself. Start at the square of each prime and skip marking when that square is outside the table.
A list of boolean pointers makes the sieve table unnecessarily large. Store one byte per flag, clear composite positions with slice assignment, and count the remaining prime flags after marking.
Keys up to six bases have at most 4096 possible values. Count them in a small array of reusable counters instead of hashing every occurrence. Keep only observed keys in the returned table and use the existing hash table for longer keys.
Some benchmark code exists to avoid temporary allocations in Acton. Name the counter StupidBox, update its value directly, and leave TODOs for revisiting these workarounds as the compiler improves.
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
These Acton ports allocate temporary numbers and repeat work in their inner loops. Reuse k-nucleotide counters, index short keys directly, and keep spectral-norm denominators as floats.
For nsieve, start marking at each prime's square and store flags in a bytearray with slice updates.